package com.jiangnan.util

import android.content.Context
import com.google.gson.Gson
import com.jiangnan.entity.LoginInfo

object SharedPrefUtil {
    private const val PREF_NAME = "login_pref"
    private const val KEY_LOGIN_INFO = "login_info"
    private val gson = Gson()

    private fun getPreferences(context: Context) =
        context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE)

    // 保存 LoginInfo 对象
    fun saveLoginInfo(context: Context, loginInfo: LoginInfo) {
        val json = gson.toJson(loginInfo)
        getPreferences(context).edit().apply {
            putString(KEY_LOGIN_INFO, json)
            apply()
        }
    }

    // 获取 LoginInfo 对象
    fun getLoginInfo(context: Context): LoginInfo? {
        val json = getPreferences(context).getString(KEY_LOGIN_INFO, null)
        return if (json.isNullOrEmpty()) null else gson.fromJson(json, LoginInfo::class.java)
    }

    // 检查是否存在登录信息
    fun isLoggedIn(context: Context): Boolean {
        return !getPreferences(context).getString(KEY_LOGIN_INFO, "").isNullOrEmpty()
    }

    // 清除登录信息
    fun clearLoginInfo(context: Context) {
        getPreferences(context).edit().remove(KEY_LOGIN_INFO).apply()
    }
}
